Back to Mathematic

Feistrl Cipher

What is a Feistel Cipher?

A Feistel cipher is a symmetric structure design used in many block ciphers (like DES). It transforms an input block through multiple identical rounds of processing to produce the ciphertext. Each round splits the data into two halves and applies a round function to one half, making it particularly useful because encryption and decryption are very similar processes.

Feistel

Key Components:

   1. Block of plaintext split into two halves (Left & Right)
   2. Round function (F)
   3. Round keys
   4. Number of rounds
   5. XOR operations

Structure Rules:

   1. Split input block into two equal halves
   2. In each round:
            • Right half goes through round function
            • Result XORed with left half
            • Halves are swapped
   3. Final swap at the end (optional)

Example Round:

Input: Left₀ and Right₀
Process:
   1. Calculate F(Right₀, Key₁)
   2. Left₁ = Right₀n
   3. Right₁ = Left₀ ⊕ F(Right₀, Key₁)
And so on...

Key Properties:

   • Invertible (decryption is same structure)
   • Round function F doesn't need to be invertible
   • Same hardware/software for encryption/decryption
   • Strong avalanche effect

Advantages:

   • Simple structure
   • Easily implemented
   • Provable security properties
   • Flexible round function design

Video for explanation